package layers.agents;

import java.util.ArrayList;

import layers.physical.Crossroad;
import layers.physical.Path;

public abstract class TruckAgentState {
	
	
	private TruckAgent agent;
	
	public TruckAgentState(TruckAgent agent){
		this.agent = agent;
	}
	
	protected TruckAgent getAgent(){
		return this.agent;
	}
	
	protected void clearAgent(){
		this.agent = null;
	}

	protected void dropPackage(){
		throw new UnsupportedOperationException();
	}
	
	protected void processTick(){
		throw new UnsupportedOperationException();
	}

	public void setRoute(ArrayList<Crossroad> route){
		throw new UnsupportedOperationException();
	}

	protected void confirmIntention(Path path) {
		throw new UnsupportedOperationException("Cannot confirm the intention in the current state.");
	}

	protected void rejectIntention(Path path) {
		throw new UnsupportedOperationException("Cannot reject the intention in the current state.");
	}
}
